package com.lanchetech.merchant.service;


import com.lanchetech.bean.request.MerchantRolePermissionReq;
import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.request.SysLogReq;
import com.lanchetech.bean.request.UpdatePasswordReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.MerchantDetailVO;
import com.lanchetech.entity.*;

import java.util.List;

public interface MerchantService {
    ResultData<MerchantDetailVO> getMerchantDetail(Merchant merchant);

    ResultData<List<MerchantPermission>> getMerchantPermissions(Merchant merchant);

    ResultData<BasePageResp<MerchantRole>> getMerchantRolePage(PageReq req);

    BaseResp updatePassword(Merchant merchant, UpdatePasswordReq req);

    BaseResp editMerchantRole(MerchantRole merchantRole);

    BaseResp deleteMerchantRole(Long id);

    ResultData<List<MerchantPermission>> getMerchantRolePermissionList(Long id);

    ResultData<List<MerchantPermission>> getAllPermissionList();

    BaseResp updateMerchantRolePermission(MerchantRolePermissionReq req);

    ResultData<BasePageResp<Merchant>> getMerchantPage(PageReq req);

    ResultData<List<MerchantRole>> getMerchantRoleList();

    BaseResp editMerchant(Merchant merchant, Merchant req);

    BaseResp deleteMerchant(Merchant merchant, Long id);

    BaseResp resetMerchantPassword(Long id);

    ResultData<Merchant> queryMerchantDetail(Long id);

    ResultData<BasePageResp<MerchantSysLog>> getSysLogPage(SysLogReq req);
}